home *** CD-ROM | disk | FTP | other *** search
Turbo C Context File | 1995-12-13 | 37.3 KB | 972 lines |
- Turbo C Context File
- ..\LIB\GAMELIB.LIB
- MAPDEMO.C
- ..\LIB\GAMELIB.LIB
- MAPDEMO.C
- SPRFILE.H
- SPRFILE.C
- SPFILE.C
- MAIN.H
- C:\BC\MKSPRITE\*.C
- \BC\MKSPRITE\*.C
- \BC\GAME\*.C
- SPRITE.H
- \BC\TCMGAME\SOURCE\*.ASM
- \BC\GAME\*.H
- \BC\TCMGAME\SPRDEMO\*.C
- \BC\TCMGAME\INCLUDE\*.H
- \BC\TCMGAME\SOURCE\*.C
- t.gui
- c:\bc\gui\*.pbm brucepal.pal
- *.pbm brucepal.pal
- explode.seq brucepal.pal
- explode1.seq brucepal.pal
- robot.seq brucepal.pal
- tank.seq brucepal.pal
- stlball.spr brucepal.pal
- robot.spr brucepal.pal
- batsuit.spr brucepal.pal
- tank.spr brucepal.pal
- explode1.spr brucepal.pal
- ebolt.spr brucepal.pal
- BACKWARD *.ASM
- void *.c
- OK *.ASM
- drawScreen
- update
- fade_out
- fade_in
- draw_screen
- moveY
- controlY
- moveX
- collision
- writing
- saving
- []= "
- (char far *)
- palette
- moveX
- moveY
- controlY
- controlX
- C:\BC\TCMGAME\*.*
- C:\BC\TCMGAME\LIB\*.LIB
- C:\BC\MAPDEMO\*.C
- C:\BC\GAME\MAPDEMO\*.C
- C:\BC\GAME\LIB
- C:\BC\GAME\LIB\*.LIB
- s->curr_bitmap,fp
- *bminfo,15d
- bitMapCount
- bitmapCount
- s->icurr_bitmap
- hd->num_bitmaps
- prev_ibitmap
- bminfo
- *bminfo
- bminfo.type
- bminfo->type
- nextTurn
- fast_tick
- currBufferPage > 0
- index = 17
- C:\BC\TCMGAME\SOURCE\GMALLOC.C
- C:\BC\TCMGAME\SOURCE\GUI.C
- C:\BC\TCMGAME\SOURCE\GUITOOL3.C
- C:\BC\INCLUDE\STDIO.H
- C:\BC\TCMGAME\SOURCE\MAPDEMO.C
- C:\BC\TCMGAME\SOURCE\MAPDEMO.C
- C:\BC\MAPDEMO\MAPDEMO.C
- C:\BC\TCMGAME\SOURCE\FADE.C
- C:\BC\TCMGAME\SOURCE\MODE13.C
- C:\BC\TCMGAME\SOURCE\MODE13.C
- C:\BC\GAME\MAPDEMO\MAPDEMO.C
- C:\BC\TCMGAME\SOURCE\MAKE13.C
- C:\BC\TCMGAME\SOURCE\MAKE13.C
- C:\BC\TCMGAME\SOURCE\MAKELIB.C
- C:\BC\TCMGAME\SOURCE\MAKECBM.C
- C:\BC\GAME\MAPDEMO\MAPDEMO.C
- _ /* set palette */
- strcpy( pal_name, argv[2]);
- if ( load_palette(pal_name, (char far *)palette) )
- die("error getting palette");
- setvgapalette((char far *)palette);
- if ( gui_load_gadget( get_gui_path("ed_map.gui"), gui_path ) )
- die("ERROR loading ed_map.gui");
- set_gui_def_colors_to_gadget( PB_EXIT );
- init_events(get_gui_path("crshair.cbm"));
- if ( !mouse_present )
- die("Mouse driver not loaded.");
- /* set aside mem etc.. for 50 erase rects, not to exceed 32k */
- init_gb_erase(50, 32000);
- memcpy( mapFileName, argv[1], 127 );
- mapFileName[127] = '\0';
- // if a groups file specified, use it, otherwise use the groups file
- // specified in the map_t struct.
- if ( argc > 3 )
- {
- memcpy( edInfoFname, argv[3], 127 );
- edInfoFname[127] = '\0';
- map= load_edit_tile_map( mapFileName, edInfoFname, MAPWIN_LEFT, MAPWIN_RIGHT,
- MAPWIN_TOP, MAPWIN_BOTTOM );
- }
- else
- map= load_edit_tile_map( mapFileName, NULL, MAPWIN_LEFT, MAPWIN_RIGHT,
- MAPWIN_TOP, MAPWIN_BOTTOM );
- if (map == NULL)
- die( "Can't open map file" );
- // initialize editing
- numObjects= getNumLibObjects(map->dress_lib);
- numAnims= getNumLibObjects(map->anim_lib);
- initEditing();
- edited=0;
- // draw screen, flip pages, draw on other page too
- page = 0;
- draw_all_tiles(map);
- draw_low_dressings(map);
- draw_high_dressings(map);
- x_page_flip(0,0);
- page= page ? 0 : 1;
- draw_all_tiles(map);
- draw_low_dressings(map);
- draw_high_dressings(map);
- task= TASK_NONE;
- while ( !done )
- {
- move_state = NO_MOVE;
- /* erase old stuff */
- draw_erase_rects(&(gb_h[page]));
- // make this page match other page due to any drawing done last frame
- if ( dirty )
- draw_all_tiles(map);
- else
- update_tiles(map);
- // draw mouse dress either under or over hidresses where mouse is if
- // editing dresses
- switch( action )
- {
- case PLACE_HIDRESS:
- draw_low_dressings(map);
- draw_high_dressings(map);
- if ( !deleteOn && !showAttribsOn )
- drawDressMouse(mouse_x, mouse_y);
- draw_spritebank_offs( map->spr_bank,
- map->x-map->win_left, map->y-map->win_top );
- break;
- case PLACE_LODRESS:
- draw_low_dressings(map);
- if ( !deleteOn && !showAttribsOn )
- drawDressMouse(mouse_x, mouse_y);
- draw_high_dressings(map);
- draw_spritebank_offs( map->spr_bank,
- map->x-map->win_left, map->y-map->win_top );
- break;
- case PLACE_ANIMS:
- draw_low_dressings(map);
- draw_high_dressings(map);
- draw_spritebank_offs( map->spr_bank,
- map->x-map->win_left, map->y-map->win_top );
- if ( !deleteOn && !showAttribsOn )
- drawDressMouse(mouse_x, mouse_y);
- break;
- case PLACE_TILE:
- draw_low_dressings(map);
- draw_high_dressings(map);
- draw_spritebank_offs( map->spr_bank,
- map->x-map->win_left, map->y-map->win_top );
- break;
- }
- if ( highLightOn )
- highLightTile( mouse_x, mouse_y );
- if ( showAttribsOn )
- drawAttributes(map);
- // if task to do, update screen on to synch. pages for page flipping
- if ( task != TASK_NONE )
- {
- gui_draw_gadget();
- update_map_data();
- }
- switch( task )
- {
- case TASK_SET_TILE_ATTRIBS:
- gui_push();
- setTileAttribs();
- gui_pop();
- task=TASK_NONE;
- break;
- case TASK_SET_OBJ_ATTRIBS:
- gui_push();
- setObjAttribs(map);
- gui_pop();
- task=TASK_NONE;
- break;
- case TASK_LOAD:
- change_font(0);
- if ( gui_get_string(0, 0, "^OK", "^CANCEL", "Load Map", 'O', 'C', mapFileName, 13, 120) )
- {
- pr2("yup, load it: %s", mapFileName);
- if ( access(mapFileName, 0) )
- {
- sprintf(gb_util_str, "File not found: %s", mapFileName);
- gui_one_button(0,0, "^OK", gb_util_str, 'O');
- }
- else
- {
- deinit_tile_map(map);
- if ( (map= load_edit_tile_map( mapFileName, "tileedit.inf", MAPWIN_LEFT, MAPWIN_RIGHT,
- MAPWIN_TOP, MAPWIN_BOTTOM ))
- != NULL )
- {
- initEditing();
- edited= 0;
- draw_all_tiles(map);
- draw_low_dressings(map);
- draw_high_dressings(map);
- x_page_flip(0,0);
- page= page ? 0 : 1;
- draw_all_tiles(map);
- draw_low_dressings(map);
- draw_high_dressings(map);
- }
- }
- }
- task=TASK_NONE;
- break;
- case TASK_SAVE:
- if ( gui_get_string(0, 0, "^OK", "^CANCEL", "Save Map", 'O', 'C', mapFileName, 13, 120) )
- {
- if ( save_tile_map(map, mapFileName) )
- {
- sprintf(gb_util_str, "ERROR Saving: %s", mapFileName);
- gui_one_button(0,0, "^OK", gb_util_str, 'O');
- }
- else
- {
- sprintf(gb_util_str, "Saved: %s", mapFileName);
- gui_one_button(0,0, " ^OK ", gb_util_str, 'O');
- }
- }
- edited= 0;
- task=TASK_NONE;
- break;
- case TASK_EXIT:
- if ( gui_two_button(0,0, "E^XIT", "^STAY",
- "Changes not saved!", 'X', 'S') )
- done=1;
- task=TASK_NONE;
- break;
- }
- // check for gui events and other events
- event.d2=0;
- // display misc data about map, and editing state
- guiDoGadgetResult= gui_do_gadget(&event);
- update_map_data();
- if ( guiDoGadgetResult )
- {
- switch ( event.type )
- {
- case E_GUI:
- pr2("gui id = %d curr_gadget = %d", event.d1, gui_list.num);
- if ( event.d2 == ESC )
- {
- if ( edited )
- task=TASK_EXIT;
- else
- done=1;
- }
- else
- {
- switch ( event.d1 )
- {
- case PB_HELP:
- gui_display_text_file( get_gui_path("ed_map.hlp"), gui_path );
- break;
- case PB_LEFT_ARROW: // left arrow
- if ( leftTileInGroup > 0 )
- {
- leftTileInGroup--;
- positionInTileMenu++;
- if ( positionInTileMenu >= NUM_SELECTIONS )
- selectTilePosition(NUM_SELECTIONS);
- }
- gui_set_id_active( positionInTileMenu+SELECT_PBs_BASE_ID );
- break;
- case PB_RIGHT_ARROW: // right arrow
- if ( map->ed_info->groups[tileGroup].end
- - map->ed_info->groups[tileGroup].start
- - leftTileInGroup > NUM_SELECTIONS )
- {
- leftTileInGroup++;
- positionInTileMenu--;
- if ( positionInTileMenu < 0 )
- selectTilePosition(1);
- }
- gui_set_id_active( positionInTileMenu+SELECT_PBs_BASE_ID );
- break;
- case PB_TOGGLE_RND: // toggle rnd
- randomOn=!randomOn;
- break;
- case PB_TOGGLE_ATTRIBS: // toggle display of tile attributes
- showAttribsOn=!showAttribsOn;
- break;
- case PB_PLACE_TILES:
- action= PLACE_TILE;
- selectTilePosition(1);
- deleteOn = 0;
- randomOn= 0;
- break;
- case PB_PLACE_HIDRESS:
- action= PLACE_HIDRESS;
- deleteOn = 0;
- selectObjectInGroup(1);
- randomOn= 0;
- break;
- case PB_PLACE_LODRESS:
- action= PLACE_LODRESS;
- deleteOn = 0;
- selectObjectInGroup(1);
- randomOn= 0;
- break;
- case PB_PLACE_ANIMS:
- action= PLACE_ANIMS;
- deleteOn = 0;
- selectAnimInGroup(1);
- randomOn= 0;
- break;
- case PB_NEXT:
- switch( action )
- {
- case PLACE_TILE:
- selectTileGroup( tileGroup+1 );
- break;
- case PLACE_HIDRESS:
- case PLACE_LODRESS:
- selectObjGroup( objectGroup+1 );
- break;
- }
- break;
- case PB_BACK:
- switch( action )
- {
- case PLACE_TILE:
- selectTileGroup( tileGroup-1 );
- break;
- case PLACE_HIDRESS:
- case PLACE_LODRESS:
- selectObjGroup( objectGroup-1 );
- break;
- }
- break;
- case PB_EXIT: // exit, will add requester to double check this request!
- if ( edited )
- task=TASK_EXIT;
- else
- done=1;
- break;
- case PB_DEL_OBJ: // erase objects
- deleteOn=!deleteOn;
- if ( deleteOn )
- {
- showDelete= 1;
- nextFlash=TICKS + FLASH_SPEED;
- cursorPbm= NULL;
- }
- break;
- case PB_SAVE: task=TASK_SAVE; break;
- case PB_LOAD: task=TASK_LOAD; break;
- case PB_SETUP: // edit tiles
- gui_push();
- editTileLib( map->tile_bitmaps, map->tilelib_size,
- map->ed_info );
- // save tile library
- save_tile_lib( map );
- //save edit info
- handle=f_open( nearFName(map->edinfo_name), F_WRONLY);
- if ( handle != -1 )
- {
- f_write(handle, (char far *)map->ed_info, sizeof(ed_info_t));
- f_close( handle );
- }
- else
- pr2( "Error: can't open edit info file for writing" );
- gui_pop();
- initEditing();
- break;
- case PB_SELECT_1: selectObjTile(1); break;
- case PB_SELECT_2: selectObjTile(2); break;
- case PB_SELECT_3: selectObjTile(3); break;
- case PB_SELECT_4: selectObjTile(4); break;
- case PB_SELECT_5: selectObjTile(5); break;
- case PB_SELECT_6: selectObjTile(6); break;
- case PB_SELECT_7: selectObjTile(7); break;
- case PB_SELECT_8: selectObjTile(8); break;
- }
- }
- break;
- case E_KEY:
- if ( event.sub_type == E_DOWN )
- {
- switch ( event.d2 )
- {
- case ESC :
- if ( edited )
- task=TASK_EXIT;
- else
- done=1;
- break;
- case END:
- move_state=MOVE_RIGHT;
- moveStep= MAPWIN_RIGHT- MAPWIN_LEFT;
- break;
- case HOME:
- move_state=MOVE_LEFT;
- moveStep= MAPWIN_RIGHT- MAPWIN_LEFT;
- break;
- case PGUP:
- move_state=MOVE_UP;
- moveStep= MAPWIN_BOTTOM-MAPWIN_TOP;
- break;
- case PGDN:
- move_state=MOVE_DOWN;
- moveStep= MAPWIN_BOTTOM-MAPWIN_TOP;
- break;
- case RIGHT:
- move_state=MOVE_RIGHT;
- moveStep= map->tile_width;
- break;
- case LEFT:
- move_state=MOVE_LEFT;
- moveStep= map->tile_width;
- break;
- case UP:
- move_state=MOVE_UP;
- moveStep= map->tile_height;
- break;
- case DOWN:
- move_state=MOVE_DOWN;
- moveStep= map->tile_height;
- break;
- case F1: selectObjTile(1); break;
- case F2: selectObjTile(2); break;
- case F3: selectObjTile(3); break;
- case F4: selectObjTile(4); break;
- case F5: selectObjTile(5); break;
- case F6: selectObjTile(6); break;
- case F7: selectObjTile(7); break;
- case F8: selectObjTile(8); break;
- }
- }
- else
- {
- if ( event.sub_type == E_UP )
- {
- switch ( event.d2 )
- {
- case RIGHT:
- case LEFT:
- case UP:
- case DOWN:
- arrow_down--;
- if ( arrow_down == 0 )
- {
- move_state=NO_MOVE;
- }
- break;
- }
- }
- }
- break;
- case E_L_BUTTON_DN: drawActive=1; break;
- case E_L_BUTTON_UP:
- drawActive=0;
- // force an update of current tile next time user presses button
- forceTileUpdate= 1;
- break;
- case E_R_BUTTON_DN:
- if ( action == PLACE_TILE )
- {
- rtBtnClickX= map->x+mouse_x-MAPWIN_LEFT;
- rtBtnClickY= map->y+mouse_y-MAPWIN_TOP;
- highLightOn=1;
- }
- else
- identifyObject( mouse_x, mouse_y );
- break;
- case E_R_BUTTON_UP:
- highLightOn=0;
- forceTileUpdate=1;
- switch( action )
- {
- case PLACE_TILE: task= TASK_SET_TILE_ATTRIBS; break;
- default:
- identifyObject( mouse_x, mouse_y );
- if ( identObjectInd != -1 )
- task= TASK_SET_OBJ_ATTRIBS;
- break;
- }
- break;
- }
- }
- if ( deleteOn )
- identifyObject( mouse_x, mouse_y );
- /* edit the map, draw stuff if required */
- updateEdits(mouse_x, mouse_y);
- // if not using arrow keys see if should move by mouse
- if ( mouse_y <= MENU_BOTTOM )
- drawActive= 0;
- else
- if ( move_state == NO_MOVE )
- {
- get_mouse_movemap_state(map, &move_state);
- moveStep= map->tile_width;
- if ( moveStep > 12 )
- moveStep=12;
- }
- move_limit_spritebank(map->spr_bank);
- // scroll map?
- if ( move_state != NO_MOVE )
- {
- move_map_vector(map, moveStep, move_state);
- move_state= NO_MOVE;
- dirty= 1;
- }
- /* draw the mouse */
- if ( task == TASK_NONE )
- gui_draw_mouse();
- /* page flip */
- x_page_flip(0,0);
- page= page ? 0 : 1;
- }
- deinit_tile_map(map);
- deinit_gb_erase();
- deinit_events();
- deinit_xmode_video();
- deinit_timer();
- get_gui_path)
- /* ---------------
- ------- get_gui_path() -------------- February 21,1994 */
- char *get_gui_path(char *f)
- short limit( short num, short lowLimit, short highLimit )
- static BYTE far *getSpriteBitMap0( BYTE far *lib, short index )
- short inMapWindow( map_t far *map, short x, short y )
- static void drawSelBitmap( void )
- static void countAnims( void )
- static void displayAnimMenu(void)
- static void selectAnimIndex( short index )
- static void selectAnimInGroup( short num_select )
- static void selectAnimGroup( short group )
- static void storeOneAnim(void)
- static short delOneAnim(void)
- static void countSelObj( void )
- static void displayObjectMenu(void)
- static short getNumLibObjects( BYTE far *lib )
- static void selectObjIndex( short index )
- static void selectObjectInGroup( short num_select )
- static void selectRandomObj( void )
- static void selectObjGroup( short group )
- static void storeOneObject(void)
- static void identifyObject( short mouseX, short mouseY )
- static short delOneDress(void)
- static void displayTileMenu(void)
- static void selectRandomTile( void )
- static void selectTilePosition( short num_select )
- static void selectTileGroup( short group )
- static void selectObjTile( short num_select )
- static void storeOneTile(void)
- static void drawDressMouse(short mx, short my)
- static void updateEdits(short mouseX, short mouseY)
- static void flashDelete( void )
- static void update_map_data(void)
- static void drawAttrib( short attrib, short x, short y )
- static void drawAttributes( map_t far *map )
- static void setAttribRadioBtns( short attrib )
- static short getTileIndex( short tileRow, short tileCol )
- static void setSelectedAttribs( short attrib )
- static void setTileAttribs( void )
- static void setObjAttribs( map_t far *map )
- static void highLightTile(short mx, short my)
- static void initEditing( void )
- void set_gui_path(char *p)
- char *get_gui_path(char *f)
- short limit( short num, short lowLimit, short highLimit )
- static BYTE far *getSpriteBitMap0( BYTE far *lib, short index )
- short inMapWindow( map_t far *map, short x, short y )
- static void drawSelBitmap( void )
- static void countAnims( void )
- static void displayAnimMenu(void)
- static void selectAnimIndex( short index )
- static void selectAnimInGroup( short num_select )
- static void selectAnimGroup( short group )
- static void storeOneAnim(void)
- static short delOneAnim(void)
- static void countSelObj( void )
- static void displayObjectMenu(void)
- static short getNumLibObjects( BYTE far *lib )
- static void selectObjIndex( short index )
- static void selectObjectInGroup( short num_select )
- static void selectRandomObj( void )
- static void selectObjGroup( short group )
- static void storeOneObject(void)
- static void identifyObject( short mouseX, short mouseY )
- static short delOneDress(void)
- static void displayTileMenu(void)
- static void selectRandomTile( void )
- static void selectTilePosition( short num_select )
- static void selectTileGroup( short group )
- static void selectObjTile( short num_select )
- static void storeOneTile(void)
- static void drawDressMouse(short mx, short my)
- static void updateEdits(short mouseX, short mouseY)
- static void flashDelete( void )
- static void update_map_data(void)
- static void drawAttrib( short attrib, short x, short y )
- static void drawAttributes( map_t far *map )
- static void setAttribRadioBtns( short attrib )
- static short getTileIndex( short tileRow, short tileCol )
- static void setSelectedAttribs( short attrib )
- static void setTileAttribs( void )
- static void setObjAttribs( map_t far *map )
- static void highLightTile(short mx, short my)
- static void initEditing( void )
- void set_gui_path(char *p)
- char *get_gui_path(char *f)
- short limit( short num, short lowLimit, short highLimit )
- static BYTE far *getSpriteBitMap0( BYTE far *lib, short index )
- short inMapWindow( map_t far *map, short x, short y )
- static void drawSelBitmap( void )
- static void countAnims( void )
- static void displayAnimMenu(void)
- static void selectAnimIndex( short index )
- static void selectAnimInGroup( short num_select )
- static void selectAnimGroup( short group )
- static void storeOneAnim(void)
- static short delOneAnim(void)
- static void countSelObj( void )
- static void displayObjectMenu(void)
- static short getNumLibObjects( BYTE far *lib )
- static void selectObjIndex( short index )
- static void selectObjectInGroup( short num_select )
- static void selectRandomObj( void )
- static void selectObjGroup( short group )
- static void storeOneObject(void)
- static void identifyObject( short mouseX, short mouseY )
- static short delOneDress(void)
- static void displayTileMenu(void)
- static void selectRandomTile( void )
- static void selectTilePosition( short num_select )
- static void selectTileGroup( short group )
- static void selectObjTile( short num_select )
- static void storeOneTile(void)
- static void drawDressMouse(short mx, short my)
- static void updateEdits(short mouseX, short mouseY)
- static void flashDelete( void )
- static void update_map_data(void)
- static void drawAttrib( short attrib, short x, short y )
- static void drawAttributes( map_t far *map )
- static void setAttribRadioBtns( short attrib )
- static short getTileIndex( short tileRow, short tileCol )
- static void setSelectedAttribs( short attrib )
- static void setTileAttribs( void )
- static void setObjAttribs( map_t far *map )
- static void highLightTile(short mx, short my)
- static void initEditing( void )
- void set_gui_path(char *p)
- char *get_gui_path(char *f)
- short limit( short num, short lowLimit, short highLimit )
- static BYTE far *getSpriteBitMap0( BYTE far *lib, short index )
- short inMapWindow( map_t far *map, short x, short y )
- static v
- (oid drawSelBitmap( void )
- static void countAnims( void )
- static void displayAnimMenu(void)
- static void selectAnimIndex( short index )
- static void selectAnimInGroup( short num_select )
- static void selectAnimGroup( short group )
- static void storeOneAnim(void)
- static short delOneAnim(void)
- static void countSelObj( void )
- static void displayObjectMenu(void)
- static short getNumLibObjects( BYTE far *lib )
- static void selectObjIndex( short index )
- static void selectObjectInGroup( short num_select )
- static void selectRandomObj( void )
- static void selectObjGroup( short group )
- static void storeOneObject(void)
- static void identifyObject( short mouseX, short mouseY )
- static short delOneDress(void)
- static void displayTileMenu(void)
- static void selectRandomTile( void )
- static void selectTilePosition( short num_select )
- static void selectTileGroup( short group )
- static void selectObjTile( short num_select )
- static void storeOneTile(void)
- static void drawDressMouse(short mx, short my)
- static void updateEdits(short mouseX, short mouseY)
- static void flashDelete( void )
- static void update_map_data(void)
- static void drawAttrib( short attrib, short x, short y )
- static void drawAttributes( map_t far *map )
- static void setAttribRadioBtns( short attrib )
- static short getTileIndex( short tileRow, short tileCol )
- static void setSelectedAttribs( short attrib )
- static void setTileAttribs( void )
- static void setObjAttribs( map_t far *map )
- static void highLightTile(short mx, short my)
- static void initEditing( void )
- void set_gui_path(char *p)
- if ( mouse_y < map->win_top )
- break;
- dirty=0;
- if ( dirty )
- {
- }
- else
- update_tiles(map);
- {
- if ( dirty )
- {
- dirty=0;
- }
- }
- return;
- switch ( g->rect.type )
- // store the first tile highlighted
- hilightLeftCol= clickX/map->tile_width;
- hilightRightCol= dragX/map->tile_width;
- clickY/map->tile_height;
- clidragX/map->tile_width;
- hilightFirstCol= clickX/map->tile_width;
- hilightFirstRow= clickY/map->tile_height;
- hilightFirstCol= clickX/map->tile_width;
- hilightFirstRow= clickY/map->tile_height;
- fade_in(pal, 2);
- fade_in(pal, 2);
- fade_out(pal, 2);
- fade_out(pal, 2);
- BYTE palette[768];
- fade_out(1);
- for( i= 0; i
- setvgapalette((char far *)palette);
- /* this bit of code makes the dressing appear transparent when
- drawn on the gui rect, by setting color zero to match the rect color */
- for( i= 0; i
- setvgapalette((char far *)palette);
- /* this bit of code makes the dressing appear transparent when
- drawn on the gui rect, by setting color zero to match the rect color */
- eraseAndDraw();
- /* page flip */
- x_page_flip(0,0);
- page= page ? 0 : 1;
- fade_in(pal, 1);
- eraseAndDraw();
- /* page flip */
- /* draw the mouse */
- // erase old stuff
- draw_erase_rects(&(gb_h[page]));
- // page flip
- x_page_flip(0,0);
- page= page ? 0 : 1;
- // erase old stuff
- draw_erase_rects(&(gb_h[page]));
- updateScreenInfo(level);
- if ( !mouse_present )
- die("Mouse driver not loaded.");
- /* draw the mouse */
- gui_draw_mouse();
- gui_draw_mouse();
- /* draw the mouse */
- gui_draw_mouse();
- eraseAndDraw();
- eraseAndDraw();
- // drawScreen();
- // drawScreen();
- drawScreen();
- // draw screen, flip pages, draw on other page too
- drawScreen();
- eraseAndDraw();
- updateScreenInfo(level);
- /* page flip */
- x_page_flip(0,0);
- page= page ? 0 : 1;
- drawScreen();
- eraseAndDraw();
- updateScreenInfo(level);
- /* erase old stuff */
- draw_erase_rects(&(gb_h[page]));
- x_page_flip(0,0);
- page= page ? 0 : 1;
- /* erase old stuff */
- draw_erase_rects(&(gb_h[page]));
- /* erase old stuff */
- eraseAndDraw();
- x_page_flip(0,0);
- page= page ? 0 : 1;
- eraseAndDraw();
- updatedScreenInfo(level);
- short level;
- static void updateScreenInfo(short level)
- fade_in(pal, 1);
- fade_in(pal, 1);
- fade_in(pal, 1);
- // set palette to dark intially
- for( i= 0; i < 768; i++ )
- palette[i]= 0;
- setvgapalette((char far *)palette);
- short i;
- fade_out(1);
- fade_out(1);
- static short joyLeft, joyCentHoriz, joyRight, joyUp, joyDown, joyCentVert;
- static short joyLeft, joyCentHoriz, joyRight, joyUp, joyDown, joyCentVert;
- switch(joyX)
- {
- case JOY_LEFT:
- // limit turn rate
- if ( nextTurn == -1 || fast_tick > nextTurn )
- {
- gguyRotation= chgRotation( gguyRotation, -1 );
- set_bitmap( gguy, gguyRotation );
- nextTurn = fast_tick+ TURN_DELAY;
- if ( joyY == JOY_UP )
- {
- gguy->dx= tankFwdX[ gguyRotation ];
- gguy->dy= tankFwdY[ gguyRotation ];
- }
- if ( joyY == JOY_DOWN )
- {
- gguy->dx= tankRevX[ gguyRotation ];
- gguy->dy= tankRevY[ gguyRotation ];
- }
- }
- break;
- case JOY_CENTER:
- nextTurn = -1;
- break;
- case JOY_RIGHT:
- // limit turn rate
- if ( nextTurn == -1 || fast_tick > nextTurn )
- {
- gguyRotation= chgRotation( gguyRotation, 1 );
- set_bitmap( gguy, gguyRotation );
- nextTurn = fast_tick+ TURN_DELAY;
- if ( joyY == JOY_UP )
- {
- gguy->dx= tankFwdX[ gguyRotation ];
- gguy->dy= tankFwdY[ gguyRotation ];
- }
- if ( joyY == JOY_DOWN )
- {
- gguy->dx= tankRevX[ gguyRotation ];
- gguy->dy= tankRevY[ gguyRotation ];
- }
- }
- break;
- }
- static short joyX = JOY_CENTER, joyY=JOY_CENTER;
- static short joyLeft, joyCentHoriz, joyRight, joyUp, joyDown, joyCentVert;
- static short joyLeft, joyCentHoriz, joyRight, joyUp, joyDown, joyCentVert;
- static short joyX = JOY_CENTER, joyY=JOY_CENTER;
- static short joyX = JOY_CENTER, joyY=JOY_CENTER;
- enum joyPos { JOY_LEFT, JOY_CENTER, JOY_RIGHT, JOY_UP, JOY_DOWN };
- enum joyPos { JOY_LEFT, JOY_CENTER, JOY_RIGHT, JOY_UP, JOY_DOWN };
- X_CENTER,
- gguy->dx= tankFwdX[ gguyRotation ];
- gguy->dy= tankFwdY[ gguyRotation ];
- break;
- joyY= Y_CENTER;
- gguy->dx=gguy->dy=0;
- break;
- joyY= Y_DOWN;
- gguy->dx= tankRevX[ gguyRotation ];
- gguy->dy= tankRevY[ gguyRotation ];
- break;
- // latch last joystick position
- // latch joystick position
- case E_JOY_X_LEFT: joyX= X_LEFT; break;
- case E_JOY_X_CENTRE: joyX= X_CENTER; break;
- case E_JOY_X_RIGHT: joyX= X_RIGHT; break;
- case E_JOY_Y_UP: joyY= Y_UP; break;
- case E_JOY_Y_CENTRE: joyY= Y_CENTER; break;
- case E_JOY_Y_DOWN: joyY= Y_RIGHT; break;
- case E_JOY_X_CENTRE: controlX= X_CENTER; break;
- case E_JOY_Y_UP: controlY= Y_UP; break;
- case E_JOY_Y_CENTRE: controlY= Y_CENTER; break;
- case E_JOY_Y_DOWN: controlY= Y_RIGHT; break;
- case E_JOY_Y_CENTRE: controlY= Y_CENTER; break;
- case RIGHT:
- gguyRotation= chgRotation( gguyRotation, 1 );
- set_bitmap( gguy, gguyRotation );
- break;
- case LEFT:
- gguyRotation= chgRotation( gguyRotation, -1 );
- set_bitmap( gguy, gguyRotation );
- break;
- case UP:
- gguy->dx= tankFwdX[ gguyRotation ];
- gguy->dy= tankFwdY[ gguyRotation ];
- break;
- case DOWN:
- gguy->dx= tankRevX[ gguyRotation ];
- gguy->dy= tankRevY[ gguyRotation ];
- break;
- case E_JOY_X_CENTRE: controlX= X_CENTER; break;
- ;break;
- controlY= Y_CENTER;
- if ( controlY == Y_UP )
- {
- gguy->dx= tankFwdX[ gguyRotation ];
- gguy->dy= tankFwdY[ gguyRotation ];
- }
- if ( controlY == Y_DOWN )
- {
- gguy->dx= tankRevX[ gguyRotation ];
- gguy->dy= tankRevY[ gguyRotation ];
- }
- if ( controlY == Y_UP )
- {
- gguy->dx= tankFwdX[ gguyRotation ];
- gguy->dy= tankFwdY[ gguyRotation ];
- }
- if ( controlY == Y_DOWN )
- {
- gguy->dx= tankRevX[ gguyRotation ];
- gguy->dy= tankRevY[ gguyRotation ];
- }
- if ( controlY == Y_UP )
- {
- case Y_UP:
- }
- if ( controlY == Y_DOWN )
- {
- case Y_DOWN:
- gguy->dx= tankRevX[ gguyRotation ];
- gguy->dy= tankRevY[ gguyRotation ];
- break;
- tankRevY[ gguyRotation ];
- tankRevX[ gguyRotation ];
- }
- if ( controlY == Y_UP )
- {
- gguy->dx= tankFwdX[ gguyRotation ];
- gguy->dy= tankFwdY[ gguyRotation ];
- }
- if ( controlY == Y_DOWN )
- {
- gguy->dx= tankRevX[ gguyRotation ];
- gguy->dy= tankRevY[ gguyRotation ];
- }
- static short keyX = X_CENTER, keyY=Y_CENTER;
- static short controlX = X_CENTER, controlY=Y_CENTER;
- static short controlY = Y_CENTER, controlY=Y_CENTER;
- // static long badGuysChgDirNext[ NUM_BADGUY_SPRITES ];
- //--- check for missiles hitting bad guys
- if( (sPtr = detect_collisions(0, missileBank, badGuyBank) ) != NULL )
- {
- sPtr->change_mode = SPR_CHG_DEAD; // kill bad guy
- start_next_in_spritebank(explodeBank, SPR_CHG_FORW_DIE,
- SPR_NO_LIMITS, sPtr->x+(sPtr->curr_width>>2),
- sPtr->y+(sPtr->curr_height>>2), 0, 0);
- badGuysHit++;
- badGuysAlive--;
- }
-